﻿using MediatR;
using S.EliminationOrDath.API.Dtos;
using S.EliminationOrDath.Domain.Models;
using S.EliminationOrDath.Read.API.Dtos;

namespace S.EliminationOrDath.API.Application.Command.EOrDCommand
{
    /// <summary>
    /// 定义中介者方法--淘汰类
    /// </summary>
    public class EliminationReadCommand
    {
        /// <summary>
        /// 显示淘汰类全部信息
        /// </summary>
        public class GetEliminationAllCommand : IRequest<IQueryable?>
        {

        }
        /// <summary>
        /// 显示羊只类型
        /// </summary>
        public class GetTypesCommand : IRequest<List<TypesDtos>?>
        {

        }
        /// <summary>
        /// 显示羊只品种
        /// </summary>
        public class GetVarietyEnumsCommand : IRequest<List<TypesDtos>?>
        {

        }
        /// <summary>
        /// 显示淘汰管理
        /// </summary>
        public class GetPhaseOutReasonCommand : IRequest<List<TypesDtos>?>
        {

        }
        /// <summary>
        /// 显示处理措施
        /// </summary>
        public class GetTreatmentMeasureCommand : IRequest<List<TypesDtos>?>
        {

        }
        /// <summary>
        /// 淘汰管理显示
        /// </summary>
        public class EliminationmanagementCommand : IRequest<PagingDto<EliminationDtos>>
        {
            /// <summary>
            /// 开始日期
            /// </summary>
            public DateTime? StartDate { get; set; }
            /// <summary>
            /// 结束日期
            /// </summary>
            public DateTime? EndDate { get; set; }
            /// <summary>
            /// 羊只耳号
            /// </summary>
            public string? EarTag { get; set; }
            /// <summary>
            /// 淘汰原因
            /// </summary>
            public int OutReason { get; set; }
            /// <summary>
            /// 是否离场
            /// </summary>
            public bool? LeaveOrNot { get; set; }
            /// <summary>
            /// 当前页
            /// </summary>
            public int pageIndex { get; set; }
            /// <summary>
            /// 每页数量
            /// </summary>
            public int pageSize { get; set; }
        }
        /// <summary>
        /// 通过Id获取对应的淘汰数据
        /// </summary>
        public class EliminationmanagementIdCommand:IRequest<EliminationModel>
        {
            /// <summary>
            /// 编号
            /// </summary>
            public int Id { get; set; }
        }
        /// <summary>
        /// 通过耳号获取对应的淘汰数据
        /// </summary>
        public class EliminationmanagementEarTagCommand : IRequest<EliminationModel>
        {
            /// <summary>
            /// 耳号
            /// </summary>
            public string? EarTag { get; set; }
        }
        /// <summary>
        /// 通过耳号获取对应的档案数据
        /// </summary>
        public class GetArchivesCommand : IRequest<List<SheepFileDto>>
        {
            /// <summary>
            /// 耳号
            /// </summary>
            public string? EarTag { get; set; }
        }
    }
}
